<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<head>
    <title>Reference</title>
    <link rel="stylesheet" href="../ldoc.css" type="text/css" />
</head>
<body>

<div id="container">

<div id="product">
	<div id="product_logo"></div>
	<div id="product_name"><big><b></b></big></div>
	<div id="product_description"></div>
</div> <!-- id="product" -->


<div id="main">


<!-- Menu -->

<div id="navigation">
<br/>
<h1>Duplex</h1>

<ul>
  <li><a href="../index.html">Index</a></li>
</ul>

<h2>Contents</h2>
<ul>
<li><a href="#Functions">Functions</a></li>
<li><a href="#Tables">Tables</a></li>
<li><a href="#Fields">Fields</a></li>
</ul>


<h2>Modules</h2>
<ul class="$(kind=='Topics' and '' or 'nowrap'">
  <li><a href="../modules/Duplex.Application.html">Duplex.Application</a></li>
  <li><a href="../modules/Duplex.Applications.Effect.html">Duplex.Applications.Effect</a></li>
  <li><a href="../modules/Duplex.Applications.GridPie.html">Duplex.Applications.GridPie</a></li>
  <li><a href="../modules/Duplex.Applications.Hydra.html">Duplex.Applications.Hydra</a></li>
  <li><a href="../modules/Duplex.Applications.Instrument.html">Duplex.Applications.Instrument</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.GridLayout.html">Duplex.Applications.Keyboard.GridLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.HarmonicLayout.html">Duplex.Applications.Keyboard.Layouts.HarmonicLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.IsomorphicLayout.html">Duplex.Applications.Keyboard.Layouts.IsomorphicLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.Layouts.PianoLayout.html">Duplex.Applications.Keyboard.Layouts.PianoLayout</a></li>
  <li><a href="../modules/Duplex.Applications.Keyboard.html">Duplex.Applications.Keyboard</a></li>
  <li><a href="../modules/Duplex.Applications.Matrix.html">Duplex.Applications.Matrix</a></li>
  <li><a href="../modules/Duplex.Applications.Metronome.html">Duplex.Applications.Metronome</a></li>
  <li><a href="../modules/Duplex.Applications.MidiActions.Bindings.html">Duplex.Applications.MidiActions.Bindings</a></li>
  <li><a href="../modules/Duplex.Applications.MidiActions.html">Duplex.Applications.MidiActions</a></li>
  <li><a href="../modules/Duplex.Applications.Mixer.html">Duplex.Applications.Mixer</a></li>
  <li><strong>Duplex.Applications.Mlrx.Mlrx_group</strong></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_note.html">Duplex.Applications.Mlrx.Mlrx_note</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_pos.html">Duplex.Applications.Mlrx.Mlrx_pos</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.Mlrx_track.html">Duplex.Applications.Mlrx.Mlrx_track</a></li>
  <li><a href="../modules/Duplex.Applications.Mlrx.html">Duplex.Applications.Mlrx</a></li>
  <li><a href="../modules/Duplex.Applications.Navigator.html">Duplex.Applications.Navigator</a></li>
  <li><a href="../modules/Duplex.Applications.NotesOnWheels.html">Duplex.Applications.NotesOnWheels</a></li>
  <li><a href="../modules/Duplex.Applications.PatternCursor.html">Duplex.Applications.PatternCursor</a></li>
  <li><a href="../modules/Duplex.Applications.PatternSequence.html">Duplex.Applications.PatternSequence</a></li>
  <li><a href="../modules/Duplex.Applications.Recorder.html">Duplex.Applications.Recorder</a></li>
  <li><a href="../modules/Duplex.Applications.Repeater.html">Duplex.Applications.Repeater</a></li>
  <li><a href="../modules/Duplex.Applications.Rotate.html">Duplex.Applications.Rotate</a></li>
  <li><a href="../modules/Duplex.Applications.StepSequencer.html">Duplex.Applications.StepSequencer</a></li>
  <li><a href="../modules/Duplex.Applications.SwitchConfiguration.html">Duplex.Applications.SwitchConfiguration</a></li>
  <li><a href="../modules/Duplex.Applications.TestPad.html">Duplex.Applications.TestPad</a></li>
  <li><a href="../modules/Duplex.Applications.TrackSelector.html">Duplex.Applications.TrackSelector</a></li>
  <li><a href="../modules/Duplex.Applications.Transport.html">Duplex.Applications.Transport</a></li>
  <li><a href="../modules/Duplex.Applications.UIButtonTest.html">Duplex.Applications.UIButtonTest</a></li>
  <li><a href="../modules/Duplex.Applications.XYPad.html">Duplex.Applications.XYPad</a></li>
  <li><a href="../modules/Duplex.Automation.html">Duplex.Automation</a></li>
  <li><a href="../modules/Duplex.Browser.html">Duplex.Browser</a></li>
  <li><a href="../modules/Duplex.BrowserProcess.html">Duplex.BrowserProcess</a></li>
  <li><a href="../modules/Duplex.Canvas.html">Duplex.Canvas</a></li>
  <li><a href="../modules/Duplex.CanvasPoint.html">Duplex.CanvasPoint</a></li>
  <li><a href="../modules/Duplex.ControlMap.html">Duplex.ControlMap</a></li>
  <li><a href="../modules/Duplex.Device.html">Duplex.Device</a></li>
  <li><a href="../modules/Duplex.Display.html">Duplex.Display</a></li>
  <li><a href="../modules/Duplex.Globals.html">Duplex.Globals</a></li>
  <li><a href="../modules/Duplex.Message.html">Duplex.Message</a></li>
  <li><a href="../modules/Duplex.MessageStream.html">Duplex.MessageStream</a></li>
  <li><a href="../modules/Duplex.MidiDevice.html">Duplex.MidiDevice</a></li>
  <li><a href="../modules/Duplex.OscClient.html">Duplex.OscClient</a></li>
  <li><a href="../modules/Duplex.OscDevice.html">Duplex.OscDevice</a></li>
  <li><a href="../modules/Duplex.OscVoiceMgr.html">Duplex.OscVoiceMgr</a></li>
  <li><a href="../modules/Duplex.Preferences.html">Duplex.Preferences</a></li>
  <li><a href="../modules/Duplex.ProcessSlicer.html">Duplex.ProcessSlicer</a></li>
  <li><a href="../modules/Duplex.RoamingDSP.html">Duplex.RoamingDSP</a></li>
  <li><a href="../modules/Duplex.Scheduler.html">Duplex.Scheduler</a></li>
  <li><a href="../modules/Duplex.StateController.html">Duplex.StateController</a></li>
  <li><a href="../modules/Duplex.UIButton.html">Duplex.UIButton</a></li>
  <li><a href="../modules/Duplex.UIButtonStrip.html">Duplex.UIButtonStrip</a></li>
  <li><a href="../modules/Duplex.UIComponent.html">Duplex.UIComponent</a></li>
  <li><a href="../modules/Duplex.UIKey.html">Duplex.UIKey</a></li>
  <li><a href="../modules/Duplex.UIKeyPressure.html">Duplex.UIKeyPressure</a></li>
  <li><a href="../modules/Duplex.UILabel.html">Duplex.UILabel</a></li>
  <li><a href="../modules/Duplex.UIPad.html">Duplex.UIPad</a></li>
  <li><a href="../modules/Duplex.UIPitchBend.html">Duplex.UIPitchBend</a></li>
  <li><a href="../modules/Duplex.UISlider.html">Duplex.UISlider</a></li>
  <li><a href="../modules/Duplex.UISpinner.html">Duplex.UISpinner</a></li>
  <li><a href="../modules/Duplex.WidgetHooks.html">Duplex.WidgetHooks</a></li>
  <li><a href="../modules/Duplex.WidgetKeyboard.html">Duplex.WidgetKeyboard</a></li>
  <li><a href="../modules/Duplex.html">Duplex</a></li>
  <li><a href="../modules/main.html">main</a></li>
</ul>

</div>

<div id="content">

<h1>Module <code>Duplex.Applications.Mlrx.Mlrx_group</code></h1>
<p>Mlrx_group - this class represent a logical group in mlrx
 the group takes care of administering updates to it's child tracks</p>
<p>

</p>


<h2><a href="#Functions">Functions</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#__init">__init (main)</a></td>
	<td class="summary">Constructor method</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#collect_group_tracks">collect_group_tracks (self_idx)</a></td>
	<td class="summary">collect all Mlrx_tracks assigned to this group</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#__eq">__eq (other)</a></td>
	<td class="summary">compare to another class instance (check for object identity)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#group_output">group_output (on_idle)</a></td>
	<td class="summary">this method will call track output in all child tracks</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_grp_panning">set_grp_panning (val, skip_output)</a></td>
	<td class="summary">specify the group panning level</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_grp_velocity">set_grp_velocity (val, skip_output)</a></td>
	<td class="summary">specify the group velocity level</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#set_grp_automation">set_grp_automation (param_type)</a></td>
	<td class="summary">record current group velocity/panning into active track/envelope</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#update_mixer_params">update_mixer_params ()</a></td>
	<td class="summary">when updating automation in READ mode, we need to set the panning
 and velocity of all group tracks</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#toggle">toggle ()</a></td>
	<td class="summary">disable activity for the group (stop active tracks), or toggle mute state</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#switch_to_track">switch_to_track (trk_idx)</a></td>
	<td class="summary">when switching track, check if we should output note-off for other tracks</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#cancel_notes">cancel_notes ()</a></td>
	<td class="summary">stop group, triggered when stopping playback
 (will not write anything to pattern but simply cancel notes)</td>
	</tr>
</table>
<h2><a href="#Tables">Tables</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#color">color</a></td>
	<td class="summary">(table) the color assigned to this group</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#color_dimmed">color_dimmed</a></td>
	<td class="summary">(table) a darker version of the color, black when monochrome</td>
	</tr>
</table>
<h2><a href="#Fields">Fields</a></h2>
<table class="function_list">
	<tr>
	<td class="name" nowrap><a href="#self.velocity">self.velocity</a></td>
	<td class="summary">(int) group velocity (between 0-255)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.panning">self.panning</a></td>
	<td class="summary">(int) group panning (between 0-255)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.tracks">self.tracks</a></td>
	<td class="summary">(<Mlrx_track...>) updated whenever tracks are reassigned</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.automation">self.automation</a></td>
	<td class="summary">(Automation) instance of Duplex automation class</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.grp_latch_velocity">self.grp_latch_velocity</a></td>
	<td class="summary">(bool) true when 'latched' automation is being recorded
 (this will cause the group button to blink)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.active_track_index">self.active_track_index</a></td>
	<td class="summary">(int) index of the track that most recently wrote
 to a pattern in the group
 (used by the WRITE mode to determine if we should keep
 wiping tracks after any notes have stopped playing)</td>
	</tr>
	<tr>
	<td class="name" nowrap><a href="#self.void_mutes">self.void_mutes</a></td>
	<td class="summary">(bool) a special 'void' type group that bypass mute groups</td>
	</tr>
</table>

<br/>
<br/>


    <h2><a name="Functions"></a>Functions</h2>
    <dl class="function">
    <dt>
    <a name = "__init"></a>
    <strong>__init (main)</strong>
    </dt>
    <dd>
    Constructor method


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">main</span>
        (Mlrx) reference to main application
        </li>
    </ul>





</dd>
    <dt>
    <a name = "collect_group_tracks"></a>
    <strong>collect_group_tracks (self_idx)</strong>
    </dt>
    <dd>
    collect all Mlrx_tracks assigned to this group


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">self_idx</span>
         (int) this group's index, as the main application know it
        </li>
    </ul>





</dd>
    <dt>
    <a name = "__eq"></a>
    <strong>__eq (other)</strong>
    </dt>
    <dd>
    compare to another class instance (check for object identity)


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">other</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "group_output"></a>
    <strong>group_output (on_idle)</strong>
    </dt>
    <dd>
    this method will call track output in all child tracks


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">on_idle</span>
         (bool) true when method is invoked by idle loop
        </li>
    </ul>





</dd>
    <dt>
    <a name = "set_grp_panning"></a>
    <strong>set_grp_panning (val, skip_output)</strong>
    </dt>
    <dd>
    specify the group panning level


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">val</span>
         (float) value between 0 and 255
        </li>
        <li><span class="parameter">skip_output</span>
         (bool) do not write automation
        </li>
    </ul>





</dd>
    <dt>
    <a name = "set_grp_velocity"></a>
    <strong>set_grp_velocity (val, skip_output)</strong>
    </dt>
    <dd>
    specify the group velocity level


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">val</span>
         (float) value between 0 and 255
        </li>
        <li><span class="parameter">skip_output</span>
         (bool) do not write automation
        </li>
    </ul>





</dd>
    <dt>
    <a name = "set_grp_automation"></a>
    <strong>set_grp_automation (param_type)</strong>
    </dt>
    <dd>
    record current group velocity/panning into active track/envelope


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">param_type</span>
         (enum) Mlrx<em>track.PARAM</em>VELOCITY or Mlrx<em>track.PARAM</em>PANNING
        </li>
    </ul>





</dd>
    <dt>
    <a name = "update_mixer_params"></a>
    <strong>update_mixer_params ()</strong>
    </dt>
    <dd>
    when updating automation in READ mode, we need to set the panning
 and velocity of all group tracks







</dd>
    <dt>
    <a name = "toggle"></a>
    <strong>toggle ()</strong>
    </dt>
    <dd>
    disable activity for the group (stop active tracks), or toggle mute state







</dd>
    <dt>
    <a name = "switch_to_track"></a>
    <strong>switch_to_track (trk_idx)</strong>
    </dt>
    <dd>
    when switching track, check if we should output note-off for other tracks


    <h3>Parameters:</h3>
    <ul>
        <li><span class="parameter">trk_idx</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "cancel_notes"></a>
    <strong>cancel_notes ()</strong>
    </dt>
    <dd>
    stop group, triggered when stopping playback
 (will not write anything to pattern but simply cancel notes)







</dd>
</dl>
    <h2><a name="Tables"></a>Tables</h2>
    <dl class="function">
    <dt>
    <a name = "color"></a>
    <strong>color</strong>
    </dt>
    <dd>
    (table) the color assigned to this group


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">red</span>



        </li>
        <li><span class="parameter">green</span>



        </li>
        <li><span class="parameter">blue</span>



        </li>
    </ul>





</dd>
    <dt>
    <a name = "color_dimmed"></a>
    <strong>color_dimmed</strong>
    </dt>
    <dd>
    (table) a darker version of the color, black when monochrome


    <h3>Fields:</h3>
    <ul>
        <li><span class="parameter">red</span>



        </li>
        <li><span class="parameter">green</span>



        </li>
        <li><span class="parameter">blue</span>



        </li>
    </ul>





</dd>
</dl>
    <h2><a name="Fields"></a>Fields</h2>
    <dl class="function">
    <dt>
    <a name = "self.velocity"></a>
    <strong>self.velocity</strong>
    </dt>
    <dd>
    (int) group velocity (between 0-255)







</dd>
    <dt>
    <a name = "self.panning"></a>
    <strong>self.panning</strong>
    </dt>
    <dd>
    (int) group panning (between 0-255)







</dd>
    <dt>
    <a name = "self.tracks"></a>
    <strong>self.tracks</strong>
    </dt>
    <dd>
    (<Mlrx_track...>) updated whenever tracks are reassigned







</dd>
    <dt>
    <a name = "self.automation"></a>
    <strong>self.automation</strong>
    </dt>
    <dd>
    (Automation) instance of Duplex automation class







</dd>
    <dt>
    <a name = "self.grp_latch_velocity"></a>
    <strong>self.grp_latch_velocity</strong>
    </dt>
    <dd>
    (bool) true when 'latched' automation is being recorded
 (this will cause the group button to blink)







</dd>
    <dt>
    <a name = "self.active_track_index"></a>
    <strong>self.active_track_index</strong>
    </dt>
    <dd>
    (int) index of the track that most recently wrote
 to a pattern in the group
 (used by the WRITE mode to determine if we should keep
 wiping tracks after any notes have stopped playing)







</dd>
    <dt>
    <a name = "self.void_mutes"></a>
    <strong>self.void_mutes</strong>
    </dt>
    <dd>
    (bool) a special 'void' type group that bypass mute groups







</dd>
</dl>


</div> <!-- id="content" -->
</div> <!-- id="main" -->
<div id="about">
<i>generated by <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.2</a></i>
</div> <!-- id="about" -->
</div> <!-- id="container" -->
</body>
</html>
